#ifndef TUXSPYSTRUCT_H_INCLUDED
#define TUXSPYSTRUCT_H_INCLUDED

class TuxedoServer {

public:
	TuxedoServer(){ };
	~TuxedoServer() {};
	wxString ProgName;
	wxString QueName;
	wxString ProcessID;
	wxString IDName;
	wxString RqDone;
	wxString SvrMin;
	wxString SvrMax;
	wxString CurrService;
	wxString UseMem;
	int Flag;
};

WX_DECLARE_OBJARRAY(TuxedoServer, TuxedoServerArray);


class TuxedoQueue {

public:
	TuxedoQueue(){ };
	~TuxedoQueue() {};
	wxString ProgName;
	wxString QueName;
	wxString SvrCnt;
	wxString WKQueued;
	wxString Queued;
	wxString AveLen;
	wxString Machine;
	int Flag;
};

WX_DECLARE_OBJARRAY(TuxedoQueue, TuxedoQueueArray);

class TuxedoClient {

public:
	TuxedoClient(){ };
	~TuxedoClient() {};
	wxString ClientName;
	wxString ClientPID;
	wxString ClientAddr;
	wxString ConnectTime;
	wxString Status;
};

WX_DECLARE_OBJARRAY(TuxedoClient, TuxedoClientArray);


class TuxedoSystem {

public:
	TuxedoSystem(){ };
	~TuxedoSystem() {};
	wxString CoreFind;
	wxString ErrorFind;
	wxString WarnFind;
	wxString LargeFile;
	wxString FreeMem;
	wxString IdleCPU;
	wxString SysReason;
};

class TuxedoStat {

public:
	TuxedoStat(){ };
	~TuxedoStat() {};
	wxString ServerCnt;
	wxString QueueCnt;
	wxString ClientCnt;
};

class TuxInitBuff {

public:
	TuxInitBuff(){ };
	~TuxInitBuff(){};
	wxString TuxVersion;
	wxString TuxBootAt;
	wxString OSVersion;
	wxString AgentVersion;
};

//WebLogic Structs

class WebLogicServer {

public:
	WebLogicServer(){ };
	~WebLogicServer() {};
	wxString ServerName;
	wxString URL;
	wxString PORT;
	wxString State;
	wxString HealthState;
	wxString OSName;
	wxString OSVersion;
	int Flag;
};

WX_DECLARE_OBJARRAY(WebLogicServer, WebLogicServerArray);

class WebLogicJVM {

public:
	WebLogicJVM(){ };
	~WebLogicJVM() {};
	wxString ServerName;
	wxString Vendor;
	wxString Version;
	wxString FreeHeap;
	wxString CurrHeap;
	wxString HeapSizeMax;
	wxString FreePercent;
	int Flag;
};

WX_DECLARE_OBJARRAY(WebLogicJVM, WebLogicJVMArray);

class WebLogicThread {

public:
	WebLogicThread(){ };
	~WebLogicThread() {};
	wxString ServerName;
	wxString TotalCount;
	wxString IdleCount;
	wxString QueueLength;
	wxString ThroughPut;
	int Flag;
};
WX_DECLARE_OBJARRAY(WebLogicThread, WebLogicThreadArray);

class WebLogicJDBC {
public:
	WebLogicJDBC() {};
	~WebLogicJDBC() {};
	wxString ServerName;
	wxString ActiveConnectionsCurrentCount;
	wxString ActiveConnectionsHighCount;
	wxString CurrCapacity;
	wxString DeploymentState;
	wxString FailedReserveRequestCount;
	wxString LeakedConnectionCount;
	wxString Name;
	wxString State;
	int Flag;
};
WX_DECLARE_OBJARRAY(WebLogicJDBC, WebLogicJDBCArray);


class WlsInitBuff {

public:
	WlsInitBuff(){ };
	~WlsInitBuff(){};
	wxString AdminServerName;
	wxString DomainVersion;
	wxString GuardianEnabled;
	wxString Name;
	wxString ServerNum;
	wxString ProductionModeEnabled;
	wxString RootDirectory;
	wxString Activationtime;
	wxString JDKVendor;
	wxString JDKVersion;
	wxString OSVersion;
	wxString OSName;
	wxString AgentVersion;
};

class WlsSystem {

public:
	WlsSystem(){ };
	~WlsSystem() {};
	wxString SvrStop;
	wxString ErrMsg;
};


class SysConfig {

public:
	SysConfig(){ };
	~SysConfig() {};
	wxString SiteIP;
	wxString SitePort;
	wxString SiteInterval;
	wxString SiteType;
	wxString User_Pwd;
	wxString Flag;
};

WX_DECLARE_OBJARRAY(SysConfig, SysConfigArray);


//Database Schema

class Site {
public:
	Site(){ };
	~Site() {};
	wxString SiteName;
	wxString SiteType;
	wxString SiteIP;
	wxString SitePort;
	wxString SiteAuth;
	wxString SitePwd;
	wxString WlsAdminURL;
	wxString WlsVer;
	wxString SiteFlag;
	wxString DatabaseFile;
};

WX_DECLARE_OBJARRAY(Site, SiteArray);


class TuxAlarm {
public:
	TuxAlarm(){ };
	~TuxAlarm() {};
	wxString SiteName;
	wxString SvrDied;
	wxString LongBusy;
	wxString NoTran;
	wxString Queued;
	wxString SMS;
	wxString PlaySound;
	wxString Email;
};

WX_DECLARE_OBJARRAY(TuxAlarm, TuxAlarmArray);

class WlsAlarm {
public:
	WlsAlarm(){ };
	~WlsAlarm() {};
	wxString SiteName;
	wxString SvrDied;
	wxString FreeHeap;
	wxString IdleThread;
	wxString IdleJDBC;
	wxString SMS;
	wxString PlaySound;
	wxString Email;
	wxString ThreadDump;
};

WX_DECLARE_OBJARRAY(WlsAlarm, WlsAlarmArray);

class ActionSet {
public:
	ActionSet(){};
	~ActionSet(){};
	wxString SoundFile;
	wxString SMTPSvr;
	wxString SMTPUsr;
	wxString SMTPPwd;
	wxString MailTo;
	wxString SMSTo;
};

#endif // TUXSPYSTRUCT_H_INCLUDED
